package com.fengye.security.service;

import com.fengye.common.domain.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Map;

/**
* @author sunlei
* @description 针对表【fy_user】的数据库操作Service
* @createDate 2024-02-25 21:02:38
*/
public interface UserService extends IService<User> {
    /**
     * 用户注册方法
     * @param user 用户pojo
     */
    void reg(User user);

    /**
     * 存储登录成功后生成的token及用户信息
     * @param username 用户名
     * @param password 密码
     * @return 返回token map
     */
    public Map<String, Object> login(String username, String password);

    /**
     * 退出登录
     * @param userId 用户ID
     */
    public void logout(Long userId);

    /**
     * 更改密码
     * @param userId 用户ID
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     */
    void changePassword(Long userId, String oldPassword, String newPassword);

    /**
     * 根据用户id获取用户信息
     * @param userId 用户ID
     * @return 用户信息
     */
    User getUserinfo(Long userId);

    /**
     * 更新用户信息
     * @param user 用户pojo
     */
    void changeUserinfo(User user);

    /**
     * 更新用户头像
     * @param userId 用户ID
     * @param avatar 头像路径
     */
    void changeAvatar(Long userId, String avatar);
}
